import {
	router
} from "./index.js";
import {
	getToken
} from '@/utils/app.js'
import store from '@/store'

const whiteRouter = ['/login'] //白名单 indexOf

// 路由守卫
// to下一个页面 from离开之前的页面 next()==to 
router.beforeEach((to, from, next) => {
			if (getToken()) {
				// 路由动态添加 ---每个角色分配不同的菜单(系统分配 ，角色分配，按钮分配)
				// 系统分配：system: 'infoSystem',
				// 角色： sale technician manager
				/* 
				1.什么时候处理动态路由 ---->登录之后进入控制台之前
				 2.什么条件处理---根据用户角色
				 */
				if (store.state.router.roles.length <= 0) {
					// 根据后台配置路由
					store.dispatch('router/getSystem').then(res => {
							// 分配好路由之后
							store.dispatch('router/createRouter').then(res => {
									// 获取所有的和添加的路由数组 
									let addRouter = store.state.router.addRouter
									let allRouter = store.state.router.allRouter
									// console.log(allRouter)
									// 路由更新
									router.options.routes = allRouter
									// 添加路由 
									router.addRoutes(addRouter)
								
									// 不添加路由记录
									next({ ...to,replace: true})
									})
							})
					}
					else {
						next()
					}
				} else {
					if (whiteRouter.indexOf(to.path) !== -1) {
						next()
					} else {
						next('/login')
					}

				}
			})
